home *** CD-ROM | disk | FTP | other *** search
/ Freaks Macintosh Archive / Freaks Macintosh Archive.bin / Freaks Macintosh Archives / Cracking / MSAccessDecrypt.sit.hqx / MS Access Decrypt.rsrc / TEXT_128.txt < prev   
Text File  |  1999-04-08  |  2KB  |  67 lines

  1. /*
  2.  * "Decrypt" Microsoft Access 97 Database Passwords
  3.  *
  4.  * Nate Lawson <nate@root.org>
  5.  * 2/9/99
  6.  *
  7.  * XOR sequence taken from a post by Adam Shosthack <adam@homeport.org>
  8.  * Access 97 actually allows a user to enter a 14 char password, although
  9.  * only the first 13 chars are stored and verified.
  10.  */
  11.  
  12. #ifdef WIN32
  13. #include <windows.h>
  14. #endif
  15. #include <stdio.h>
  16. #include <iostream.h>
  17. #include <string.h>
  18. int main ()
  19. {
  20.     FILE *fp;
  21.     int i;
  22.     char filename[256];
  23.     unsigned char passBuf[14], xorString[] = { 0x86, 0xFB, 0xEC, 0x37,
  24.         0x5D, 0x44, 0x9C, 0xFA, 0xC6, 0x5E, 0x28, 0xE6, 0x13 };
  25.     printf("The K-r33t MS Access PW Decoder, For MACOS! HELLA COOL!\n");
  26.     printf("I spent about 10 minutes on this.. so the shareware fee is $20000\n");
  27.     printf("Pay Up, Or YOU SUCK! =D\n\n");
  28.     printf("Original Code By Nate Lawson <nate@root.org>\n");
  29.     printf("MacOS Port, By Drop Dead Bacon.\n");
  30.     printf("hotline://raid3d.dhs.org, e-mail: poot@mac-addict.com\n");
  31.     printf("irc.slacknet.org, #hackintosh\n");
  32.     printf("full source in TEXT Resource ID 128.\n");
  33.     printf("\nInput the path of the access file (MyGaynessHD:Folder 1:M$ Sucks A Nut.mdb)\n:");
  34.     
  35.     cin.getline(filename, 256);
  36.     
  37.     if (strlen(filename) < 2) {
  38.         fprintf(stderr, "invalid filename: %s\n", filename);
  39.         return 1;
  40.     }
  41.  
  42.     /* Open file, read password into buffer */
  43.     if ((fp = fopen(filename, "rb")) == NULL) {
  44.         fprintf(stderr, "Unable to open %s\n", filename);
  45.         return 1;
  46.     }
  47.     if ((fseek(fp, 0x42, SEEK_SET)) < 0) {
  48.         fprintf(stderr, "Unable to seek.  File truncated?\n");
  49.         return 1;
  50.     }
  51.     if ((fread(passBuf, sizeof(passBuf) - 1, 1, fp)) < 0) {
  52.         fprintf(stderr, "Cannot read file: %s\n", filename);
  53.         return 1;
  54.     }
  55.  
  56.     /* Unmask password and print out results */
  57.     for (i = 0; i < sizeof(passBuf) - 1; i++)
  58.         passBuf[i] ^= xorString[i];
  59.     passBuf[sizeof(passBuf) - 1] = '\0';
  60.  
  61.     printf("Password is:\n   %s (ascii)\n   ", passBuf);
  62.     for (i = 0; i < sizeof(passBuf) - 1; i++)
  63.         printf("0x%x ", passBuf[i]);
  64.     printf("(hex)\n");
  65.  
  66.    return 0;
  67. }